Security News
JSR Working Group Kicks Off with Ambitious Roadmap and Plans for Open Governance
At its inaugural meeting, the JSR Working Group outlined plans for an open governance model and a roadmap to enhance JavaScript package management.
cliclopts but for Node.js parseArgs. A library that formats standard usage strings using the node:util
parseArgs
options
object shape with an additional help
field added to it.
npm install argsclopts
import { printHelpText } from 'argsclopts'
import { join } from 'node:path'
import { parseArgs } from 'node:util'
/**
* @typedef {import('argsclopts').ArgscloptsParseArgsOptionsConfig} ArgscloptsParseArgsOptionsConfig
*/
const pkgPath = join(import.meta.dirname, 'package.json')
/** @type {ArgscloptsParseArgsOptionsConfig} */
const options = {
foo: {
type: 'boolean',
short: 'f',
help: 'A foo flag thats a boolean'
},
bar: {
type: 'string',
help: 'A bar flag thats a string'
}
}
await printHelpText({
options,
pkgPath
})
/*
Usage: argsclopts [options]
Example: argsclopts
--foo, -f A foo flag thats a boolean
--bar A bar flag thats a string
argsclopts (v1.0.0)
*/
const args = ['-f', '--bar', 'b']
const { values } = parseArgs({ args, options })
console.log(values)
// { foo: true, bar: 'b' }
import { formatHelpText, printHelpText, usage, header, footer } from 'argsclopts'
You can import formatHelpText
, printHelpText
, usage
, header
, footer
from argsclopts
.
s
helpText = formatHelpText({ options, [pkgPath], [name], [version], [footerFn], [headerFn], [exampleFn]})
Generate the helptText
string. Requires passing in an options
object that you provide to parseArgs
, with one additional field per flag: help
. You should also provide pkgPath
(a resolved path the package.json
) so that a bin name and version can be resolved. Otherwise, pass in a name
and version
to override any resolved data from pkgPath
. If both name
and version
are provided, a pkgPath
is required. The headerFn
, and exampleFn
can be used to override the header text and the footerFn
can be used to override the footer text.
An example options
object might look like this:
const options = {
foo: {
type: 'boolean',
short: 'f',
help: 'A foo flag thats a boolean'
},
bar: {
type: 'string',
help: 'A bar flag thats a string'
}
}
void printHelpText({ options, [pkgPath], [name], [version], [footerFn], [headerFn], [exampleFn]})
Exactly the same as formatHelpText
except it uses console.log
to print the text for you. Returns nothing.
usageText = usage(options)
Generate just the usage string with a given options
object.
Generate the headerText only. Pass in either a pkgPath
string path to the package.json
of the bin you are printing for, or a name
. The headerFn
and exampleFn
allow you to override the header text that is generated. Each function receilves an object with a name
key.
footerText = footer({ [pkgPath], [name], [version], [footerFn] })
Generate the footerText only. Pass in either a pkgPath
string path to the package.json
of the bin you are printing for, or a name
and/or version
. The footerFn
lets you override the footer text template and receives an object with a name
and version
key.
MIT
FAQs
cliclopts but for Node.js parseArgs
We found that argsclopts demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
At its inaugural meeting, the JSR Working Group outlined plans for an open governance model and a roadmap to enhance JavaScript package management.
Security News
Research
An advanced npm supply chain attack is leveraging Ethereum smart contracts for decentralized, persistent malware control, evading traditional defenses.
Security News
Research
Attackers are impersonating Sindre Sorhus on npm with a fake 'chalk-node' package containing a malicious backdoor to compromise developers' projects.